package com.hejjon.service;

import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hejjon.bean.BasicTypeParam;
import com.hejjon.core.bean.TreeNode;
import com.hejjon.core.domain.entity.BasicType;
import com.hejjon.core.domain.vo.BasicTypeVO;

import java.util.List;

/**
 *
 * @author cs
 * @since 2025-03-06
 */
public interface IBasicTypeService extends IService<BasicType> {

    /**
     * 创建基础类型
     * @param basicType
     * @return
     */
    boolean create(BasicType basicType);

    /**
     * 根据分类ID查询分类下的基础类型列表
     * @return
     */
    List<BasicTypeVO> listByCategoryId(String categoryId);


    /**
     *
     * @param categoryId
     * @param param
     * @return
     */
    List<BasicTypeVO> listByCategoryIdAndParams(String categoryId, BasicTypeParam param);


    boolean update(BasicType basicType);

    /**
     * 查询基础类型的树形结构
     *  分类
     *      >子分类
     *          >基础类型
     * @return
     */
    List<TreeNode<String>> findTreeData();


    /**
     * 根据分类ID判断是否存在
     * @param categoryId 分类ID
     * @return
     */
    boolean existByCategoryId(String categoryId);

    /**
     * 查询所有存储类型
     * @return
     */
    JSONArray listAllJdbcType();


    /**
     *
     * @return
     */
    List<BasicType> findByIds(List<String> ids);

}
